class Animal {
    public String name;
    public int age;
    public Animal(String name) {
        this.name = name;
    }
}
class Dog extends Animal {
    public Dog(String name) {
        super(name);
    }
    public void wang() {
        System.out.println("汪汪");
    }
}
class Bird extends Animal {
    public Bird(String name) {
        super(name);
    }
    public void fly() {
        System.out.println("起飞");
    }

}

public class Test {
    public static void main(String[] args) {
        Animal animal = new Dog("小狗");
        //向下转型
        if (animal instanceof Dog) {
            Dog dog = (Dog) animal;
            dog.wang();
        }

        Animal animal1 = new Bird("小狗");
        //向下转型
        if (animal1 instanceof Dog) {
            Dog dog1 = (Dog) animal1;
            dog1.wang();
        } else {
            System.out.println("不安全");
        }
    }
}





//class Animal {
//    public String name;
//    public int age;
//    public Animal(String name) {
//        this.name = name;
//    }
//
//    public void eat() {
//        System.out.println(this.name + "吃饭");
//    }
//
//    public Animal test() {
//        return null;
//    }
//
//}
//class Dog extends Animal {
//    public Dog(String name) {
//        super(name);
//    }
//    public void wang() {
//        System.out.println("汪汪");
//    }
//    public void eat() {
//        System.out.println(this.name + "吃狗粮");
//    }
//
//    public Dog test() {
//        return null;
//    }
//
//}
//public class Test {
//    public static void main(String[] args) {
//        Animal animal = new Dog("小狗");
//        animal.eat();
//    }
//}





//public class Test {
//    public static void main(String[] args) {
//        Animal animal = test();
//    }
//    public static Animal test() {
//        System.out.println("向上转型");
//        return new Dog("小狗");
//    }
//}



//public class Test {
//    public static void main(String[] args) {
//        Dog dog = new Dog("小狗1");
//        test(dog);
//    }
//    public static void test(Animal animal1) {
//        System.out.println("向上转型");
//    }
//}




//public class Test {
//    public static void main(String[] args) {
//        //方法一
//        Dog dog = new Dog("小狗1");
//        Animal animal = dog;
//        //方法二(简写)
//        Animal animal1 = new Dog("小狗2");
//        test(dog);
//    }
//    public static void test(Animal animal1) {
//        System.out.println("向上转型");
//    }
//}
